/**
 * 该方法是用来获取网络中的购物车列表的，就相当于vuex中的actions操作
 * 异步方法有两个参数，第一个参数dispatch,第二个参数getState
 * redux-thunk最重要的功能是将异步请求的方法，变成了一个actionCreator函数
 */
import axios from 'axios'
import {setShopCartListSync} from '../modules/shopcart'

/**
 * 完成购物车查询的异步方法
 * @param {*} dispatch :派发的方法
 * @param {*} getState ：获取状态的方法
 */
export async function getShopcartListAsync(dispatch,getState){
    console.log('------getShopcartListAsync方法-----------------');
   const result=await axios.get('http://www.zhaijizhe.cn:3001/shopcart/getShopcartData')
   console.log('result',result.data.data);
   dispatch(setShopCartListSync(result.data.data))
}
/**
 * 更改数量
 * @param {*} payload 
 * @returns 
 */
export function changNumAsync(payload){
    return async function(dispatch,getState){
        console.log("------changNumAsync------------");
        const result=await axios.post('http://www.zhaijizhe.cn:3001/shopcart/changeNum',payload)
        if(result.data.code){
            dispatch(getShopcartListAsync)
        }
    }
}

export function changInputNumAsync(payload){
    return async function(dispatch,getState){
        console.log("------changNumAsync------------");
        const result=await axios.post('http://www.zhaijizhe.cn:3001/shopcart/changeNumByInput',payload)
        if(result.data.code){
            dispatch(getShopcartListAsync)
        }
    }
}

export function checkedProductAsync(_id){
    return async function(dispatch){
        const result=await axios.get('http://www.zhaijizhe.cn:3001/shopcart/checkProducts',{params:{_id}})
        if(result.data.code){
            dispatch(getShopcartListAsync)
        }
    }
}